The present invention relates generally to a computing device, to a communication device, and to a method for operating a computing device.
In a micro-kernel based system, multiple operating systems can be executed in parallel. One of the advantages of using a micro-kernel is that it allows building different compartments which are invisible to each other. A compartment can be seen as a logical abstraction of a computing platform providing memory, processing power etc. Each operating system can be assigned to one compartment. The task of the micro-kernel is to provide address spaces, execution threads and inter-process communication (IPC) methods to the compartments. As certain HW resources such as peripherals may need to be shared by different compartments, the micro-kernel also has to provide methods to dynamically assign these resources on request. One major attribute of micro-kernels is that they do not execute driver code, which usually makes up the main part of kernel code in standard monolithic systems.
As the name indicates, micro-kernels have very limited functionality and thus only require a minimal memory footprint on a target platform. It might even be possible to formally prove the correct functionality of a micro-kernel in a way, that certain security threats such as buffer overflows known from monolithic operating systems (Windows, Linux etc.) cannot be executed at all.
An easy and secure access control to a crypto-engine is desired.